ASP.Net Core ব্যবহার করে একটি real-time chat application তৈরি করা সম্ভব। এর জন্য SignalR টেকনোলজি ব্যবহার করা হয়, যা real-time web functionality প্রদান করে, যেমন ইন্টারেকটিভ chat অ্যাপ্লিকেশন বা live notifications। SignalR প্রক্রিয়াটি ক্লায়েন্ট ও সার্ভারের মধ্যে ডেটা সহজভাবে এবং দ্রুতভাবে ট্রান্সফার করতে সাহায্য করে।
এখানে একটি সাধারণ chat application তৈরি করার উদাহরণ দেওয়া হলো যেখানে ক্লায়েন্টরা real-time চ্যাট করতে পারে।
প্রথমে, ASP.Net Core Web Application তৈরি করুন এবং প্রজেক্ট টাইপ হিসেবে Web Application (Model-View-Controller) নির্বাচন করুন।
SignalR ব্যবহার করতে, আপনার প্রজেক্টে Microsoft.AspNetCore.SignalR NuGet প্যাকেজ ইনস্টল করতে হবে। এটি SignalR এর জন্য প্রয়োজনীয় লাইব্রেরি।
dotnet add package Microsoft.AspNetCore.SignalR
SignalR একটি Hub এর মাধ্যমে সার্ভার ও ক্লায়েন্টের মধ্যে কমিউনিকেশন পরিচালনা করে। Hub একটি বিশেষ ক্লাস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে মেসেজ পাঠানোর জন্য ব্যবহৃত হয়।
প্রথমে Hub ক্লাসটি তৈরি করুন:
using Microsoft.AspNetCore.SignalR;
public class ChatHub : Hub
{
// মেসেজ পাঠানো
public async Task SendMessage(string user, string message)
{
// সার্ভার থেকে সব ক্লায়েন্টদের মেসেজ পাঠানো
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
এখানে SendMessage মেথডটি ক্লায়েন্ট থেকে সার্ভারে মেসেজ গ্রহণ করে এবং ReceiveMessage মেথডের মাধ্যমে সব ক্লায়েন্টদের মেসেজ পাঠিয়ে দেয়।
Startup.cs বা Program.cs ফাইলে SignalR Hub কনফিগার করুন।
var builder = WebApplication.CreateBuilder(args);
// SignalR সেবা কনফিগার করা
builder.Services.AddSignalR();
var app = builder.Build();
// SignalR Hub কনফিগার করা
app.MapHub<ChatHub>("/chathub");
app.Run();
Client-side JavaScript দিয়ে SignalR Hub এর সাথে যোগাযোগ তৈরি করতে হবে। এখানে আমরা JavaScript এবং SignalR Client Library ব্যবহার করব।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chat Application</title>
<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@5.0.0/dist/browser/signalr.min.js"></script>
</head>
<body>
<div>
<h1>Real-time Chat</h1>
<input type="text" id="userInput" placeholder="Enter your name" />
<textarea id="messageInput" placeholder="Enter your message"></textarea>
<button id="sendButton">Send</button>
</div>
<div id="chatMessages"></div>
<script>
// SignalR Hub Connection
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chathub")
.build();
// মেসেজ রিসিভ করার জন্য ক্লায়েন্ট সাইড মেথড
connection.on("ReceiveMessage", function (user, message) {
const chatMessages = document.getElementById("chatMessages");
const msg = `${user}: ${message}`;
const newMessage = document.createElement("p");
newMessage.textContent = msg;
chatMessages.appendChild(newMessage);
});
// Hub এর সাথে কানেক্ট করা
connection.start().catch(function (err) {
return console.error(err.toString());
});
// Send Button Click হ্যান্ডল করা
document.getElementById("sendButton").addEventListener("click", function () {
const user = document.getElementById("userInput").value;
const message = document.getElementById("messageInput").value;
// সার্ভারে মেসেজ পাঠানো
connection.invoke("SendMessage", user, message).catch(function (err) {
return console.error(err.toString());
});
});
</script>
</body>
</html>
এখানে:
এখন, আপনার ASP.Net Core Chat Application রান করুন। ক্লায়েন্টরা একে অপরের মেসেজ রিয়েল-টাইমে দেখতে পাবে। যখন একটি ক্লায়েন্ট মেসেজ পাঠাবে, তা অন্য সকল ক্লায়েন্টের স্ক্রীনে রিয়েল-টাইমে প্রদর্শিত হবে।
এভাবে আপনি ASP.Net Core এবং SignalR ব্যবহার করে একটি সহজ real-time chat application তৈরি করতে পারেন। SignalR ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদানকে দ্রুত এবং ইন্টারেকটিভ করতে সহায়তা করে, যা চ্যাট অ্যাপ্লিকেশন, লাইভ নোটিফিকেশন, বা রিয়েল-টাইম ডেটা প্রসেসিংয়ের জন্য খুবই কার্যকর।
Read more